package main

//你是产品经理，目前正在带领一个团队开发新的产品。不幸的是，
//你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的，所以错误的版本之后的所有版本都是错的。
//
//假设你有 n 个版本 [1, 2, ..., n]，你想找出导致之后所有版本出错的第一个错误的版本。
//
//你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。
func main() {

}

//执行结果：
//通过
//显示详情
//添加备注
//
//执行用时：
//0 ms
//, 在所有 Go 提交中击败了
//100.00%
//的用户
//内存消耗：
//1.9 MB
//, 在所有 Go 提交中击败了
//100.00%
//的用户
//通过测试用例：
func firstBadVersion(n int) int {
	left := 1
	right := n
	target := 1
	for right >= left {
		mid := left + (right-left)/2
		if isBadVersion(mid) {
			if mid-1 <= 0 || !isBadVersion(mid-1) {
				return mid
			}
			target = mid - 1
			right = mid - 2
		} else {
			left = mid + 1
		}
	}
	return target
}
func isBadVersion(version int) bool {
	return true

}
